Most networking communication processes are modeled in layers. This layered representation leads to the term protocol stack, which refers to the stack of layers in the protocol suite. By dividing the communication processes into layers, the protocol stack allows for division of labor, ease of implementation, e.g. through software, ease of software code testing, and the ability to develop alternative layer implementations. Layers communicate with those above and below via concise interfaces. In this regard, a layer provides services for the layer directly above it and makes use of services, e.g. a transport service, provided by the layer directly below it. At each layer, the protocol refers to a set of rules necessary to provide the services of the layer.
In a communication network, network devices implementing a given protocol layer send or receive data under the form of Protocol Data Units (PDU). The coding syntax of the PDUs is an attribute of the protocol layer. A PDU includes control data of the protocol layer and service data. The service data is the client data, i.e. data coming from an interface of the protocol layer and for which the services of the layer are used. Oftentimes, the service data is referred to as payload. The control data is data necessary to specify and control the services provided by the protocol layer. Usually, the control data is disposed in a header of the PDU.